﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CityGames
{
    /// <summary>
    /// Clase parcial del formulario MDI contendor
    /// </summary>
    public partial class FormContenedor : Form
    {
        public bool esAdministrador = false;
        static private Empleado enEmpleado = new Empleado();

        /*Creo Formularios de la aplicación*/        
        public FormMenuPrincipal hijoFormMenuPrincipal = new FormMenuPrincipal();

        public FormJuegosAlta hijoFormJuegosAlta = new FormJuegosAlta();
        public FormJuegosAltaCopias hijoFormJuegosAltaCopias = new FormJuegosAltaCopias();
        public FormJuegosGestion hijoFormJuegosGestion = new FormJuegosGestion();
        public FormJuegosGestionCopias hijoFormJuegosGestionCopias = new FormJuegosGestionCopias();

        public FormSociosAlta hijoFormSociosAlta = new FormSociosAlta();
        //public FormSociosEditar hijoFormSociosEditar = new FormSociosEditar();
        public FormSociosGestion hijoFormSociosGestion = new FormSociosGestion();

        public FormAlquilerVenta hijoFormAlquilerVenta = new FormAlquilerVenta();
        public FormAlquilerVenta2 hijoFormAlquilerVenta2 = new FormAlquilerVenta2();     
        public FormAlquilerVenta3 hijoFormAlquilerVenta3 = new FormAlquilerVenta3();     
        public FormAlquilerVenta4 hijoFormAlquilerVenta4 = new FormAlquilerVenta4();     
        public FormDevolverJuego hijoFormDevolverJuego = new FormDevolverJuego();

        public FormEventoFinalizado hijoFormEventoFinalizado = new FormEventoFinalizado();
        //public FormEventosAltaLiga hijoFormEventosAltaLiga = new FormEventosAltaLiga();
        public FormEventosAltaTorneo hijoFormEventosAltaTorneo = new FormEventosAltaTorneo();
        public FormEventosInscribirSocios hijoFormEventosInscribirSocios = new FormEventosInscribirSocios();
        public FormEventosBracketsT hijoFormEventosBracketsT = new FormEventosBracketsT();
        
        public FormEventosGruposT hijoFormEventosGruposT = new FormEventosGruposT();
        
        public FormEventosJornadasT hijoFormEventosJornadasT = new FormEventosJornadasT();
        public FormEventosGestion hijoFormEventosGestion = new FormEventosGestion();

        public FormPromocionesAlta hijoFormPromocionesAlta = new FormPromocionesAlta();
        public FormPromocionesGestion hijoFormPromocionesGestion = new FormPromocionesGestion();
        public FormPromocionesVisualizar hijoFormPromocionesVisualizar = new FormPromocionesVisualizar();

        public FormEmpleadosAlta hijoFormEmpleadosAlta = new FormEmpleadosAlta();
        public FormEmpleadosGestion hijoFormEmpleadosGestion = new FormEmpleadosGestion();

        public FormTarifas hijoFormTarifas = new FormTarifas();
 

        /*Declaro los puntos donde guardaré la ubicación de los botones después del initializeComponent*/
        Point punJuegos, punSocios, punAlquilerVenta, punEventos, punPromociones, punEmpleados, punTarifas;

        public FormContenedor(string dniEmpleado)
        {
            InitializeComponent();

            enEmpleado.Dni = dniEmpleado;
            string tipoEmpleado = enEmpleado.ObtenerTipoEmpleado();

            if (tipoEmpleado == "Administrador")
                esAdministrador = true;
            else if (tipoEmpleado == "Empleado")
                esAdministrador = false;

            /*Guardo las coordenadas X e Y de los botones del menu lateral*/
            punJuegos = paJuegos.Location;
            punSocios = paSocios.Location;
            punAlquilerVenta = paAlquilerVenta.Location;
            punEventos = paEventos.Location;
            punPromociones = paPromociones.Location;
            punEmpleados = paEmpleados.Location;
            punTarifas = paTarifas.Location;
        }

        public FormContenedor()
        {
            InitializeComponent();
        }

        private void FormContenedor_Load(object sender, EventArgs e)
        {            
            hijoFormMenuPrincipal.MdiParent = this;

            hijoFormJuegosAlta.MdiParent = this;
            hijoFormJuegosGestion.MdiParent = this;
            hijoFormJuegosGestionCopias.MdiParent = this;
            
            hijoFormSociosAlta.MdiParent = this;
            hijoFormSociosGestion.MdiParent = this;

            hijoFormAlquilerVenta.MdiParent = this;
            hijoFormAlquilerVenta3.MdiParent = this;
            hijoFormAlquilerVenta4.MdiParent = this;
            hijoFormDevolverJuego.MdiParent = this;
            
            hijoFormEventosAltaTorneo.MdiParent = this;
            hijoFormEventosInscribirSocios.MdiParent = this;
            hijoFormEventosBracketsT.MdiParent = this;
            hijoFormEventosGestion.MdiParent = this;
            hijoFormEventosGruposT.MdiParent = this;
            hijoFormEventosJornadasT.MdiParent = this;
            hijoFormEventoFinalizado.MdiParent = this;

            if (esAdministrador)
            {
                hijoFormPromocionesAlta.MdiParent = this;
                hijoFormPromocionesGestion.MdiParent = this;
                hijoFormPromocionesVisualizar.MdiParent = this;
                hijoFormEmpleadosAlta.MdiParent = this;
                hijoFormEmpleadosGestion.MdiParent = this;
                hijoFormTarifas.MdiParent = this;
            }
            
            hijoFormJuegosAlta.Show();
            hijoFormJuegosGestion.Show();
            hijoFormJuegosGestionCopias.Show();
            hijoFormSociosAlta.Show();
            hijoFormSociosGestion.Show();
            hijoFormAlquilerVenta.Show();
            hijoFormAlquilerVenta3.Show();
            hijoFormAlquilerVenta4.Show();
            hijoFormDevolverJuego.Show();
            hijoFormEventosAltaTorneo.Show();
            hijoFormEventosInscribirSocios.Show();
            hijoFormEventosBracketsT.Show();
            hijoFormEventosGruposT.Show();
            hijoFormEventosJornadasT.Show();
            hijoFormEventosGestion.Show();
            hijoFormEventoFinalizado.Show();

            if (esAdministrador)
            {
                hijoFormEmpleadosAlta.Show();
                hijoFormEmpleadosGestion.Show();
                hijoFormPromocionesAlta.Show();
                hijoFormPromocionesGestion.Show();
                hijoFormPromocionesVisualizar.Show();
                hijoFormTarifas.Show();
            }
            else
            {
                OcultarPanelesAlEmpleado();
            }
            hijoFormMenuPrincipal.Show();
        }

        private void salirToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void acercaDeToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            FormAcercaDe hijoFormAcercaDe = new FormAcercaDe();
            hijoFormAcercaDe.MdiParent = this;
            hijoFormAcercaDe.Show();
        }

        private void ubicarMenuPorDefecto()
        {
            /*Ubico los botones del menu lateral en su sutio por defecto*/
            paTarifas.Location = punTarifas;
            paEmpleados.Location = punEmpleados;
            paPromociones.Location = punPromociones;
            paEventos.Location = punEventos;
            paAlquilerVenta.Location = punAlquilerVenta;
            paSocios.Location = punSocios;
            paJuegos.Location = punJuegos;
        }

        private void OcultarPanelesAlEmpleado()
        {
            paEmpleados.Visible = false;
            paPromociones.Visible = false;
            paTarifas.Visible = false;
        }

        private void ocultarDesplegables()
        {
            /*Oculto todos los paneles desplegados del menu lateral*/
            paAltaJuego.Visible = false;
            paGestionarJuegos.Visible = false;
            paAltaSocio.Visible = false;
            paGestionarSocios.Visible = false;
            paAlquilerVentaG.Visible = false;
            paDevolucion.Visible = false;
            paAltaTorneo.Visible = false;
            paMostrarEventos.Visible = false;
            paAltaPromocion.Visible = false;
            paGestionarPromociones.Visible = false;
            paAltaEmpleado.Visible = false;
            paGestionarEmpleados.Visible = false;
            paGestionarTarifas.Visible = false;
        }

        private void paJuegos_Click(object sender, EventArgs e)
        {
            ubicarMenuPorDefecto();
            ocultarDesplegables();

            //Muevo los botones
            Int32 pixelesY = 60;
            Int32 pixelesX = paJuegos.Location.X;

            Int32 socioY = (punSocios.Y) + pixelesY;
            paSocios.Location = new Point(pixelesX, socioY);

            Int32 alquilerVentaY = (punAlquilerVenta.Y) + pixelesY;
            paAlquilerVenta.Location = new Point(pixelesX, alquilerVentaY);

            Int32 eventosY = (punEventos.Y) + pixelesY;
            paEventos.Location = new Point(pixelesX, eventosY);

            Int32 promocionesY = (punPromociones.Y) + pixelesY;
            paPromociones.Location = new Point(pixelesX, promocionesY);

            Int32 empleadosY = (punEmpleados.Y) + pixelesY;
            paEmpleados.Location = new Point(pixelesX, empleadosY);

            Int32 tarifasY = (punTarifas.Y) + pixelesY;
            paTarifas.Location = new Point(pixelesX, tarifasY);

            //Ubico y Muestro los Botones Desplegados
            Int32 AltaJuegoY = (punJuegos.Y) + 40;
            paAltaJuego.Location = new Point(pixelesX, AltaJuegoY);

            Int32 GestionarJuegosY = (punJuegos.Y) + 70;
            paGestionarJuegos.Location = new Point(pixelesX, GestionarJuegosY);

            paAltaJuego.Visible = true;
            paGestionarJuegos.Visible = true;
        }

        private void paSocios_Click(object sender, EventArgs e)
        {
            ubicarMenuPorDefecto();
            ocultarDesplegables();

            //Muevo los botones del menu
            Int32 pixelesY = 60;
            Int32 pixelesX = paJuegos.Location.X;

            Int32 alquilerVentaY = (punAlquilerVenta.Y) + pixelesY;
            paAlquilerVenta.Location = new Point(pixelesX, alquilerVentaY);

            Int32 eventosY = (punEventos.Y) + pixelesY;
            paEventos.Location = new Point(pixelesX, eventosY);

            Int32 promocionesY = (punPromociones.Y) + pixelesY;
            paPromociones.Location = new Point(pixelesX, promocionesY);

            Int32 empleadosY = (punEmpleados.Y) + pixelesY;
            paEmpleados.Location = new Point(pixelesX, empleadosY);

            Int32 tarifasY = (punTarifas.Y) + pixelesY;
            paTarifas.Location = new Point(pixelesX, tarifasY);

            //Ubico y Muestro los Botones Desplegados
            Int32 AltaSocioY = (punSocios.Y) + 40;
            paAltaSocio.Location = new Point(pixelesX, AltaSocioY);

            Int32 GestionarSociosY = (punSocios.Y) + 70;
            paGestionarSocios.Location = new Point(pixelesX, GestionarSociosY);

            paAltaSocio.Visible = true;
            paGestionarSocios.Visible = true;
        }

        private void paAlquilerVenta_Click(object sender, EventArgs e)
        {
            ubicarMenuPorDefecto();
            ocultarDesplegables();
                        
            //Muevo los botones del menu
            Int32 pixelesY = 60;
            Int32 pixelesX = paJuegos.Location.X;

            Int32 eventosY = (punEventos.Y) + pixelesY;
            paEventos.Location = new Point(pixelesX, eventosY);

            Int32 promocionesY = (punPromociones.Y) + pixelesY;
            paPromociones.Location = new Point(pixelesX, promocionesY);

            Int32 empleadosY = (punEmpleados.Y) + pixelesY;
            paEmpleados.Location = new Point(pixelesX, empleadosY);

            Int32 tarifasY = (punTarifas.Y) + pixelesY;
            paTarifas.Location = new Point(pixelesX, tarifasY);

            //Ubico y Muestro los Botones Desplegados
            Int32 AlquilerVentaY = (punAlquilerVenta.Y) + 40;
            paAlquilerVentaG.Location = new Point(pixelesX, AlquilerVentaY);

            Int32 DevolucionY = (punAlquilerVenta.Y) + 70;
            paDevolucion.Location = new Point(pixelesX, DevolucionY);

            paAlquilerVentaG.Visible = true;
            paDevolucion.Visible = true;
        }

        private void paEventos_Click(object sender, EventArgs e)
        {
            ubicarMenuPorDefecto();
            ocultarDesplegables();

            //Muevo los botones del menu
            Int32 pixelesY = 60;
            Int32 pixelesX = paJuegos.Location.X;

            Int32 promocionesY = (punPromociones.Y) + pixelesY;
            paPromociones.Location = new Point(pixelesX, promocionesY);

            Int32 empleadosY = (punEmpleados.Y) + pixelesY;
            paEmpleados.Location = new Point(pixelesX, empleadosY);

            Int32 tarifasY = (punTarifas.Y) + pixelesY;
            paTarifas.Location = new Point(pixelesX, tarifasY);

            //Ubico y Muestro los Botones Desplegados
            Int32 AltaLigaY = (punEventos.Y) + 40;
            //paAltaLiga.Location = new Point(pixelesX, AltaLigaY);

            Int32 AltaTorneoY = (punEventos.Y) + 40;
            paAltaTorneo.Location = new Point(pixelesX, AltaTorneoY);

            Int32 MostrarEventosY = (punEventos.Y) + 70;
            paMostrarEventos.Location = new Point(pixelesX, MostrarEventosY);

            //es popaAltaLiga.Visible = true;
            paAltaTorneo.Visible = true;
            paMostrarEventos.Visible = true;
        }

        private void paPromociones_Click(object sender, EventArgs e)
        {
            ubicarMenuPorDefecto();
            ocultarDesplegables();

            //Muevo los botones del menu
            Int32 pixelesY = 60;
            Int32 pixelesX = paJuegos.Location.X;

            Int32 empleadosY = (punEmpleados.Y) + pixelesY;
            paEmpleados.Location = new Point(pixelesX, empleadosY);

            Int32 tarifasY = (punTarifas.Y) + pixelesY;
            paTarifas.Location = new Point(pixelesX, tarifasY);

            //Ubico y Muestro los Botones Desplegados
            Int32 AltaPromocionY = (punPromociones.Y) + 40;
            paAltaPromocion.Location = new Point(pixelesX, AltaPromocionY);

            Int32 GestionarPromocionesY = (punPromociones.Y) + 70;
            paGestionarPromociones.Location = new Point(pixelesX, GestionarPromocionesY);

            paAltaPromocion.Visible = true;
            paGestionarPromociones.Visible = true;
        }

        private void paEmpleados_Click(object sender, EventArgs e)
        {
            ubicarMenuPorDefecto();
            ocultarDesplegables();

            //Muevo los botones del menu
            Int32 pixelesY = 60;
            Int32 pixelesX = paJuegos.Location.X;

            Int32 tarifasY = (punTarifas.Y) + pixelesY;
            paTarifas.Location = new Point(pixelesX, tarifasY);

            //Ubico y Muestro los Botones Desplegados
            Int32 AltaEmpleadoY = (punEmpleados.Y) + 40;
            paAltaEmpleado.Location = new Point(pixelesX, AltaEmpleadoY);

            Int32 GestionarEmpleadosY = (punEmpleados.Y) + 70;
            paGestionarEmpleados.Location = new Point(pixelesX, GestionarEmpleadosY);

            paAltaEmpleado.Visible = true;
            paGestionarEmpleados.Visible = true;
        }

        private void paTarifas_Click(object sender, EventArgs e)
        {
            ubicarMenuPorDefecto();
            ocultarDesplegables();

            //Muevo los botones del menu
            Int32 pixelesX = paJuegos.Location.X;


            //Ubico y Muestro los Botones Desplegados
            Int32 GestionarTarifasY = (punTarifas.Y) + 40;
            paGestionarTarifas.Location = new Point(pixelesX, GestionarTarifasY);

            paGestionarTarifas.Visible = true;
        }

        private void paAltaJuego_Click(object sender, EventArgs e)
        {
            
            hijoFormJuegosAlta.NuevoJuego(sender, e);
            hijoFormJuegosAlta.Focus();
            
            /*
            hijoFormEventosGruposT.CargarGrupos("Torneo Tekken 3");
            hijoFormEventosGruposT.Focus();
            */
        }

        private void paGestionarJuegos_Click(object sender, EventArgs e)
        {
            //hijoFormJuegosGestion.Limpiar();
            //hijoFormJuegosGestion.MostrarTodos();
            hijoFormJuegosGestion.MostrarTodos();
            hijoFormJuegosGestion.Focus();
        }

        private void paAltaSocio_Click(object sender, EventArgs e)
        {
            hijoFormSociosAlta.NuevoSocio(sender, e);
            hijoFormSociosAlta.Limpiar();
            hijoFormSociosAlta.Focus();
        }

        private void paGestionarSocios_Click(object sender, EventArgs e)
        {
            //hijoFormSociosGestion.Limpiar();
            //hijoFormSociosGestion.MostrarTodos();
            hijoFormSociosGestion.Focus();
        }

        private void paAlquilerVentaG_Click(object sender, EventArgs e)
        {
            //hijoFormAlquilerVenta.Limpiar();
            hijoFormAlquilerVenta.MostrarTodos();
            hijoFormAlquilerVenta.Focus();

            /*
            hijoFormAlquilerVenta3.MostrarTodos();
            hijoFormAlquilerVenta3.Focus();
             */

            //hijoFormAlquilerVenta4.MostrarTodos();
            //hijoFormAlquilerVenta4.Focus();
            
        }

        private void paDevolucion_Click(object sender, EventArgs e)
        {
            //hijoFormDevolucion.Limpiar();
            //mirar si tiene datagrid para mostrar todos
            hijoFormDevolverJuego.formVacio();
            hijoFormDevolverJuego.Focus();
        }

        private void paAltaLiga_Click(object sender, EventArgs e)
        {
            //hijoFormEventosAltaLiga.Limpiar();
            //hijoFormEventosAltaLiga.Focus();
        }

        private void paAltaTorneo_Click(object sender, EventArgs e)
        {
            hijoFormEventosAltaTorneo.NuevoTorneo(sender, e);
            hijoFormEventosAltaTorneo.Focus();
        }

        private void paMostrarEventos_Click(object sender, EventArgs e)
        {
            //hijoFormEventosMostrar.Limpiar();
            hijoFormEventosGestion.MostrarTodos();
            hijoFormEventosGestion.Focus();
        }

        private void paAltaPromocion_Click(object sender, EventArgs e)
        {
            hijoFormPromocionesAlta.Limpiar();
            hijoFormPromocionesAlta.Focus();
        }

        private void paGestionarPromociones_Click(object sender, EventArgs e)
        {
            hijoFormPromocionesGestion.MostrarTodos();
            hijoFormPromocionesGestion.Focus();
        }

        private void paAltaEmpleado_Click(object sender, EventArgs e)
        {
            hijoFormEmpleadosAlta.LimpiarForm();
            hijoFormEmpleadosAlta.Focus();
        }

        private void paGestionarEmpleados_Click(object sender, EventArgs e)
        {
            hijoFormEmpleadosGestion.Focus();
        }

        private void paGestionarTarifas_Click(object sender, EventArgs e)
        {
            //hijFormTarifas.MostrarTodos();
            hijoFormTarifas.Limpiar();
            hijoFormTarifas.Focus();
        }  
    }
}
